package utilidades;

import data.ConexionBD;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Clase Login.
 * 
 * @author David González Requejo.
 */

public class Login {
    
    private int id_usuario;
    private int rol_usuario;
    private String nombre_usuario;
    private String alias_usuario;
    
    private final ConexionBD baseDeDatos;
    
    /**
     * Crea un objeto de la clase Login.
     */
    
    public Login() {
        
        baseDeDatos = new ConexionBD();
        baseDeDatos.connect();        
        
    }
    
    /**
     * Comprueba si un alias y su clave de usuario se encuentran en la base de datos.
     * 
     * @param alias String que representa el alias de un usuario.
     * @param clave String que representa la clave de un usuario.
     * 
     * @return Retorna true si la validación es correcta y false si no lo es.
     */
    
    public boolean validarUsuario( String alias, String clave ) {
        
        ResultSet datosConsulta = baseDeDatos.select( "SELECT p.id, p.Rol_id, p.nombre_completo, p.alias FROM persona p RIGHT JOIN rol r ON p.Rol_id = r.id WHERE p.alias = '" + alias + "' AND p.clave = '" + clave + "' LIMIT 1;");
        
        try {
            
            while( datosConsulta.next() ) {
                
                this.id_usuario = datosConsulta.getInt( 1 );
                this.rol_usuario = datosConsulta.getInt( 2 );
                this.nombre_usuario = datosConsulta.getString( 3 );
                this.alias_usuario = datosConsulta.getString( 4 );
                
            }
             System.out.print( "2" );
        } catch( SQLException | NullPointerException excepcion ) {
            
            Logger.getLogger( Cursos.class.getName()).log( Level.SEVERE, null, excepcion );
            
            return false;
            
        }
        
        return true;
        
    }
    
    /**
     * Retorna la id del usuario.
     * 
     * @return Retorna un valor de tipo int con el identificador del usuario.
     */
    
    public int getId_usuario() {
        
        return id_usuario;
        
    }
    
    /**
     * Retorna la id del rol de usuario.
     * 
     * @return Retorna un valor de tipo int con el identificador del rol de usuario.
     */
    
    public int getRol_usuario() {
        
        return rol_usuario;
        
    }

    /**
     * Retorna el nombre del usuario.
     * 
     * @return Retorna un valor de tipo String con el nombre del usuario.
     */
    
    public String getNombre_usuario() {
        
        return nombre_usuario;
        
    }

    /**
     * Retorna el alias del usuario.
     * 
     * @return Retorna un valor de tipo String con el alias del usuario.
     */
    
    public String getAlias_usuario() {
        
        return alias_usuario;
        
    }
    
}
